<?php
$uri = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
$uri = $_SERVER['DOCUMENT_ROOT'] . "/" . $uri[1] . "/amfphp/services";
include_once ($uri . "/Corretora/config/includeCorretora.php");

class FuncionarioFC{
	private $funcionarioDao;
	//private $instituicaoDAO;
	//private $pessoa;
	public function __construct(){
		$this->funcionarioDao = FuncionarioDAO::getInstancia();
		//$this->instituicaoDAO = InstituicaoDAO::getInstancia();
	}
		
	public function listaFuncionario(){
		$tam = count($this->funcionarioDao->listaFuncionario());
		$listaFuncionario = $this->funcionarioDao->listaFuncionario();
		$lista['funcionario'] = "";
		
		$funcionario = new Funcionario();
		$setor = new Setor();
		$instituicao = new Instituicao();
		for ($i = 0; $i < $tam; $i++) {
			$funcionario = $listaFuncionario[$i];
			$setor = $funcionario->getSetor();
			$instituicao = $funcionario->getInstituicao();
			
			$lista['funcionario'][$i]["codPessoa"]			=	$funcionario->getCodPessoa();
			$lista['funcionario'][$i]["nomePessoa"]			=	$funcionario->getNomePessoa();
			
			$lista['funcionario'][$i]["cargo"]				=	$funcionario->getCargo();
			$lista['funcionario'][$i]["codSetor"]			=	$setor->getCodSetor();
			$lista['funcionario'][$i]["descricaoSetor"]		=	$setor->getDescricao();
			$lista['funcionario'][$i]["codInstituicao"]		=	$instituicao->getCodInstituicao();
			$lista['funcionario'][$i]["nomeInstituicao"]	=	$instituicao->getNomeInstituicao();
				
		}
		return $lista;
	}

	public function insertFuncionario($nomePessoa,$email,$telFixo,$telCel,$logradouro,$bairro,$cidade,$uf,$codInstituicao, $codSetor, $cargo){
		$pessoa = new Pessoa();
		$funcionario = new Funcionario();
		$setor = new Setor();
		$instituicao = new Instituicao();
		
		$pessoa->setNomePessoa($nomePessoa);
		$pessoa->setEmail($email);
		$pessoa->setTelFixo($telFixo);
		$pessoa->setTelCel($telCel);
		$pessoa->setLogradouro($logradouro);
		$pessoa->setBairro($bairro);
		$pessoa->setCidade($cidade);
		$pessoa->setUf($uf);
		
		$instituicao->setCodInstituicao($codInstituicao);
		$funcionario->setInstituicao($instituicao);
		
		$setor->setCodSetor($codSetor);
		$funcionario->setSetor($setor);
		
		$funcionario->setCargo($cargo);
		//return $codSetor;
		return $this->funcionarioDao->insertFuncionario($funcionario,$pessoa);
	}

	public function updateFuncionario($codPessoa, $nomePessoa,$email,$telFixo,$telCel,$logradouro,$bairro,$cidade,$uf,$codInstituicao,
									 $codSetor, $cargo){
		$pessoa = new Pessoa();
		$funcionario = new Funcionario();
		$setor = new Setor();
		$instituicao = new Instituicao();
		
		$pessoa->setCodPessoa($codPessoa);
		$pessoa->setNomePessoa($nomePessoa);
		$pessoa->setEmail($email);
		$pessoa->setTelFixo($telFixo);
		$pessoa->setTelCel($telCel);
		$pessoa->setLogradouro($logradouro);
		$pessoa->setBairro($bairro);
		$pessoa->setCidade($cidade);
		$pessoa->setUf($uf);
		
		$instituicao->setCodInstituicao($codInstituicao);
		$funcionario->setInstituicao($instituicao);
		
		$setor->setCodSetor($codSetor);
		$funcionario->setSetor($setor);
		
		$funcionario->setCargo($cargo);
		
		//$funcionario->setCodPessoa($codPessoa);
		//return $codPessoa;
		return $this->funcionarioDao->updateFuncionario($funcionario, $pessoa);
	}

	public function deleteFuncionario($codPessoa){
		$pessoa = new Pessoa();
		$pessoa->setCodPessoa($codPessoa);
		
		return $this->funcionarioDao->deleteFuncionario($pessoa);
	}
	
}
?>